java命令执行payloads
字数
260 字
阅读时间
1 分钟
更新日期
11/25/2018
偶尔有时命令执行有效负载Runtime.getRuntime().exec()
会失败。使用Webshell,反序列化漏洞或其他向量时可能会发生这种情况。
有时这是因为重定向和管道字符的使用方式在正在启动的进程的上下文中没有意义。例如,ls > dir_listing
在shell中执行应该将当前目录的列表输出到名为的文件中dir_listing
。但是在exec()
函数的上下文中,该命令将被解释为获取>
和dir_listing
目录的列表。
其他时候,其中包含空格的参数会被StringTokenizer类破坏,该类将空格分割为命令字符串。那样的东西ls "My Directory"
会被解释为ls '"My' 'Directory"'
。
在Base64编码的帮助下,下面的转换器可以帮助减少这些问题。它可以通过调用Bash或PowerShell再次使管道和重定向更好,并且还确保参数中没有空格。